locked _cursorTarget 




!_isPZombie


"\z\addons\dayz_code\actions\unlock_veh.sqf",[_





unlock_veh.sqf


private [ "_vehicle" , "_key" ];
_vehicle = ( _this select 3 ) select 0; 
_key = ( _this select 3 ) select 1;

if ( DZE_ActionInProgress ) exitWith { cutText [(localize "str_epoch_player_37") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;

{ player removeAction _x } count s_player_lockunlock;
s_player_lockunlock = [];
s_player_lockUnlock_crtl = 1;

PVDZE_veh_Lock = [ _vehicle , false ];

if ( player distance _vehicle < 10 ) then {
	if ( local _vehicle ) then {
		PVDZE_veh_Lock spawn local_lockUnlock
	} else {
		publicVariable "PVDZE_veh_Lock";
	};

	cutText [format["%1 used to unlock vehicle.",_key], "PLAIN"];
};

s_player_lockUnlock_crtl = -1;

DZE_ActionInProgress = false;





from selfactions:


	_ownerID = _cursorTarget getVariable ["CharacterID","0"];

	....


	// Allow owner to unlock vault
	if ( ( _typeOfCursorTarget in DZE_LockableStorage ) && _ownerID != "0" && ( player distance _cursorTarget < 3 ) ) then {
		if ( s_player_unlockvault < 0 ) then {
			if ( _typeOfCursorTarget in DZE_LockedStorage ) then {
				if( _ownerID == dayz_combination || _ownerID == dayz_playerUID ) then {
					_combi = player addAction [format[localize "STR_EPOCH_ACTIONS_OPEN",_text], "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true, "",""];
					s_player_combi set [count s_player_combi,_combi];
				} else {
					_combi = player addAction [format[localize "STR_EPOCH_ACTIONS_UNLOCK",_text], "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
					s_player_combi set [count s_player_combi,_combi];
				};
				s_player_unlockvault = 1;

			} else {

				if( _ownerID != dayz_combination && _ownerID != dayz_playerUID ) then {
					_combi = player addAction [localize "STR_EPOCH_ACTIONS_RECOMBO", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
					s_player_combi set [count s_player_combi,_combi];
					s_player_unlockvault = 1;
				};
			};
		};
	} else {

		{ player removeAction _x } count s_player_combi;
		s_player_combi = [];
		s_player_unlockvault = -1;
	};





vault_unlock.sqf


private ["_obj"];
_obj = _this select 3;
_obj spawn player_unlockVault;






	player_unlockVault =			compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_unlockVault.sqf";

	player_unlockDoor =		compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_unlockDoor.sqf";

	local_lockUnlock =			compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_lockUnlock.sqf";		//When vehicle is local to unit perform locking vehicle







player_unlockdoor.sqf:


/*
	DayZ Unlock Door
	Usage: [_obj] call player_unlockDoor;
	Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com.
*/
private ["_display","_obj","_objectCharacterID"];

if(!isNil "DZE_DYN_UnlockDoorInprogress") exitWith { cutText [(localize "str_epoch_player_21") , "PLAIN DOWN"]; };

DZE_DYN_UnlockDoorInprogress = true;

if(!isNull dayz_selectedDoor) then {

	if (!isNil 'KeyCodeTryTimer') then {
		if(diag_tickTime > KeyCodeTryTimer) then {
			KeyCodeTry = nil;
			KeyCodeTryTimer = nil;
		};
	};

	// our target
	_obj = dayz_selectedDoor;

	_notNearestPlayer = _obj call dze_isnearest_player;

	if (_notNearestPlayer) then {
		// close display since another player is closer
		_display = findDisplay 41144;
		_display closeDisplay 3000;
		cutText [(localize "STR_EPOCH_ACTIONS_16"), "PLAIN DOWN"];
	} else {
	
		// get object combination
		_objectCharacterID 	= _obj getVariable ["CharacterID","0"];

		// Check combination
		if (DZE_Lock_Door == _objectCharacterID) then {

			[player,"combo_unlock",0,false] call dayz_zombieSpeak;

			// close display
			_display = findDisplay 41144;
			_display closeDisplay 3000;

			// unlock if locked
			if(_obj animationPhase "Open_hinge" == 0) then {
				_obj animate ["Open_hinge", 1];
			};

			if(_obj animationPhase "Open_latch" == 0) then {
				_obj animate ["Open_latch", 1];
			};
			KeyCodeTry = nil;

		} else {

			[10,10] call dayz_HungerThirst;

			DZE_Lock_Door = "";
			[player,"combo_locked",0,false] call dayz_zombieSpeak;
			[player,20,true,(getPosATL player)] spawn player_alertZombies;

			if (isNil 'KeyCodeTry') then {KeyCodeTry = 0;};

			KeyCodeTry = KeyCodeTry + 1;

			if (!isNil 'KeyCodeTryTimer') then {KeyCodeTryTimer = diag_tickTime+10;};

			if(KeyCodeTry >= ((round(random 4)) + 4)) then {
			
				if (isNil 'KeyCodeTryTimer') then {KeyCodeTryTimer = diag_tickTime+10;};
			
				cutText [(localize "str_epoch_player_19"), "PLAIN DOWN"];
				_display = findDisplay 41144;
				_display closeDisplay 3000;
			};
		};
	};
} else {
	
	// close display since no target
	_display = findDisplay 41144;
	_display closeDisplay 3000;
};
DZE_DYN_UnlockDoorInprogress = nil;





player_unlockvault.sqf:

/*
	DayZ Lock Safe
	Usage: [_obj] spawn player_unlockVault;
	Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com.
*/
private ["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_holder","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty","_countr","_alreadyPacking","_playerNear","_playerID","_claimedBy","_unlockedClass","_text","_nul","_objType"];

if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_21") , "PLAIN DOWN"]; };
DZE_ActionInProgress = true;

{player removeAction _x} count s_player_combi;s_player_combi = [];
s_player_unlockvault = 1;

_obj = _this;
_objType = typeOf _obj;

if (!(_objType in DZE_LockedStorage)) exitWith {
	s_player_unlockvault = -1;
	DZE_ActionInProgress = false;
};

_playerNear = _obj call dze_isnearest_player;
if(_playerNear) exitWith { DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_20") , "PLAIN DOWN"];  };

// Silently exit if object no longer exists || alive
if(isNull _obj || !(alive _obj)) exitWith { DZE_ActionInProgress = false; };

_unlockedClass = getText (configFile >> "CfgVehicles" >> _objType >> "unlockedClass");
_text = 		getText (configFile >> "CfgVehicles" >> _objType >> "displayName");

_alreadyPacking = _obj getVariable["packing",0];
_claimedBy = _obj getVariable["claimed","0"];
_ownerID = _obj getVariable["CharacterID","0"];

if (_alreadyPacking == 1) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_epoch_player_124"),_text], "PLAIN DOWN"]};

// Promt user for password if _ownerID != dayz_playerUID
if ((_ownerID == dayz_combination) || (_ownerID == dayz_playerUID)) then {

	// Check if any players are nearby if not allow player to claim item.
	_playerNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]) > 1;
	_playerID = getPlayerUID player;
	
	// Only allow if not already claimed.
	if (_claimedBy == "0" || !_playerNear) then {
		// Since item was not claimed proceed with claiming it.
		_obj setVariable["claimed",_playerID,true];
	};
	
	_dir = direction _obj;
	_pos	= _obj getVariable["OEMPos",(getposATL _obj)];
	_objectID 	= _obj getVariable["ObjectID","0"];
	_objectUID	= _obj getVariable["ObjectUID","0"];

	_claimedBy = _obj getVariable["claimed","0"];
	
	if (_claimedBy == _playerID) then {

		if(!isNull _obj && alive _obj) then {

			PVDZE_log_lockUnlock = [player, _obj, false];
			publicVariableServer "PVDZE_log_lockUnlock";

			_obj setVariable["packing",1];
			[1,1] call dayz_HungerThirst;
			_weapons = 		_obj getVariable["WeaponCargo",[]];
			_magazines = 	_obj getVariable["MagazineCargo",[]];
			_backpacks = 	_obj getVariable["BackpackCargo",[]];
			player playActionNow "Medic";
			sleep 1;
			[player,"tentpack",0,false] call dayz_zombieSpeak;
			sleep 5;

			_holder = createVehicle [_unlockedClass,_pos,[], 0, "CAN_COLLIDE"];
			// Remove locked vault
			deleteVehicle _obj;
			_holder setdir _dir;
			_holder setPosATL _pos;
			player reveal _holder;
	
			_holder setVariable["CharacterID",_ownerID,true];
			_holder setVariable["ObjectID",_objectID,true];
			_holder setVariable["ObjectUID",_objectUID,true];
			_holder setVariable ["OEMPos", _pos, true];

			if (count _weapons > 0) then {
				//Add weapons
				_objWpnTypes = 	_weapons select 0;
				_objWpnQty = 	_weapons select 1;
				_countr = 0;
				{
					_holder addweaponcargoGlobal [_x,(_objWpnQty select _countr)];
					_countr = _countr + 1;
				} count _objWpnTypes;
			};
	
			if (count _magazines > 0) then {
				//Add Magazines
				_objWpnTypes = _magazines select 0;
				_objWpnQty = _magazines select 1;
				_countr = 0;
				{
					if( _x != "CSGAS" ) then
					{
						_holder addmagazinecargoGlobal [_x,(_objWpnQty select _countr)];
						_countr = _countr + 1;
					};
				} count _objWpnTypes;
			};

			if (count _backpacks > 0) then {
				//Add Backpacks
				_objWpnTypes = _backpacks select 0;
				_objWpnQty = _backpacks select 1;
				_countr = 0;
				{
					_holder addbackpackcargoGlobal [_x,(_objWpnQty select _countr)];
					_countr = _countr + 1;
				} count _objWpnTypes;
			};
	
			cutText [format[(localize "str_epoch_player_125"),_text], "PLAIN DOWN"];
		};
	} else {
		DZE_ActionInProgress = false; 
		cutText [format[(localize "str_player_beinglooted"),_text] , "PLAIN DOWN"];
	};
} else {
	[10,10] call dayz_HungerThirst;
	player playActionNow "Medic";
	sleep 1;
	[player,"repair",0,false] call dayz_zombieSpeak;
	[player,25,true,(getPosATL player)] spawn player_alertZombies;
	sleep 5;
	cutText [format[(localize "str_epoch_player_126"),_text], "PLAIN DOWN"];
};
s_player_unlockvault = -1;
DZE_ActionInProgress = false;




local_lockUnlock.sqf:

private ["_vehicle","_status"];
_vehicle = _this select 0;
_status = _this select 1;

if (local _vehicle) then {
	if(_status) then {
		_vehicle setVehicleLock "LOCKED";
	} else {
		_vehicle setVehicleLock "UNLOCKED";
	};
};




this blocks interaction with spawned items!!

_bldObj setVehicleLock "LOCKED";



